System.Collections.Generic.HashSet<T> sınıfı
Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.
HashSet<T> sınıfı yüksek performanslı küme işlemleri sağlar. Küme, yinelenen öğe içermeyen ve öğeleri belirli bir sırada olmayan bir koleksiyondur.
Bir HashSet<T> nesnenin kapasitesi, nesnenin barındırabileceği öğe sayısıdır. HashSet<T> Nesneye öğeler eklendikçe nesnenin kapasitesi otomatik olarak artar.
HashSet<T> sınıfı matematik kümelerinin modelini temel alır ve veya Hashtable koleksiyonlarının anahtarlarına Dictionary<TKey,TValue> erişmeye benzer yüksek performanslı küme işlemleri sağlar. Basit bir ifadeyle HashSet<T> , sınıfı değer içermeyen bir Dictionary<TKey,TValue> koleksiyon olarak düşünülebilir.
Koleksiyon HashSet<T> sıralanmaz ve yinelenen öğeler içeremez. Sıralama veya öğe yinelemesi uygulamanız için performanstan daha önemliyse, sınıfını yöntemiyle Sort birlikte kullanmayı List<T> göz önünde bulundurun.
HashSet<T> set toplama (birleşimler) ve set çıkarma gibi birçok matematik kümesi işlemi sağlar. Aşağıdaki tabloda, sağlanan HashSet<T> işlemler ve bunların matematiksel eşdeğerleri listelenir.
HashSet işlemi | Matematik eşdeğeri |
---|---|
UnionWith | Birleşim veya küme ekleme |
IntersectWith | Kesişim |
ExceptWith | Çıkarma ayarla |
SymmetricExceptWith | Simetrik fark |
Listelenen küme işlemlerine ek olarak, HashSet<T> sınıfı küme eşitliğini, küme çakışmasını ve bir kümenin başka bir kümenin alt kümesi mi yoksa üst kümesi mi olduğunu belirlemek için yöntemler de sağlar.
Yalnızca .NET Framework: Çok büyük HashSet<T> nesneler için, yapılandırma öğesinin özniteliğini <gcAllowVeryLargeObjects>
çalışma zamanı ortamında olarak ayarlayarak enabled
64 bitlik bir sistemde maksimum kapasiteyi 2 milyar öğeye true
artırabilirsiniz.
HashSet<T> sınıfı, ISet<T> arabirimini uygular.
HashSet ve LINQ kümesi işlemleri
LINQ, veya IQueryable arabirimlerini uygulayan herhangi bir veri kaynağında , Union
, Intersect
ve Except
ayarlama işlemlerine IEnumerable erişim Distinct
sağlar. HashSet<T> daha büyük ve daha sağlam bir küme işlemleri koleksiyonu sağlar. Örneğin, HashSet<T> ve IsSupersetOfgibi IsSubsetOf karşılaştırmalar sağlar.
LINQ kümesi işlemleri ile HashSet<T> işlemler arasındaki birincil fark, LINQ kümesi işlemlerinin her zaman yeni IEnumerable<T> bir koleksiyon döndürmesi, eşdeğer yöntemlerin HashSet<T> ise geçerli koleksiyonu değiştirmesidir.
Genellikle, yeni bir küme oluşturmanız gerekiyorsa veya uygulamanızın yalnızca sağlanan küme işlemlerine erişmesi gerekiyorsa, herhangi bir IEnumerable<T> koleksiyon veya dizide LINQ kümesi işlemlerini kullanmak yeterli olacaktır. Ancak, uygulamanız ek küme işlemlerine erişim gerektiriyorsa veya yeni bir koleksiyon oluşturmak istenmiyorsa veya gerekli değilse sınıfını HashSet<T> kullanın.
Aşağıdaki tabloda işlemleri ve eşdeğer LINQ kümesi işlemleri gösterilmektedir HashSet<T> .
HashSet işlemi | LINQ eşdeğeri |
---|---|
UnionWith | Union |
IntersectWith | Intersect |
ExceptWith | Except |
Sağlanmadı. | Distinct |
SymmetricExceptWith | Sağlanmadı. |
Overlaps | Sağlanmadı. |
IsSubsetOf | Sağlanmadı. |
IsProperSubsetOf | Sağlanmadı. |
IsSupersetOf | Sağlanmadı. |
IsProperSupersetOf | Sağlanmadı. |
SetEquals | Sağlanmadı. |